home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / strbrk.arc / BSORT.ASM < prev    next >
Assembly Source File  |  1985-11-20  |  896b  |  41 lines

  1. ; ROUTINE TO SORT A STRING ARRAY
  2. ;
  3. bsort    proc    far
  4. ;
  5.     push    si        ; save registers
  6.     push    di
  7.     push    cx
  8.     push    ax
  9. ;
  10. ; adjust count for one less than number of items
  11.     dec    cx        ; adjust the count
  12. ;
  13. ; outer loop - for SI = 1 TO N-1
  14. bsort1:
  15.     push    cx        ; save the count
  16.     mov    di,si        ; destination points to source
  17. ;
  18. ; inner loop - for DI = SI+1 to N
  19. bsort2:
  20.     push    cx        ; save the count
  21.     add    di,dx        ; point to next destination
  22.     mov    cx,dx        ; entry length
  23.     call    compare        ; compare the strings
  24.     jle    bsort3        ; skip if source <= dest
  25.     call    switch        ; switch if not
  26. bsort3:
  27.     pop    cx        ; restore the count
  28.     loop    bsort2
  29. ;
  30.     add    si,dx        ; point to next source 
  31.     pop    cx        ; restore the count
  32.     loop    bsort1
  33. bsortexit:
  34.     pop    ax        ; restore registers
  35.     pop    cx
  36.     pop    di
  37.     pop    si
  38.     ret
  39. ;
  40. bsort    endp
  41.